// pages/mySteps/index.js

const app = getApp()
import {
  WeixinModel
} from '../../models/weixin.js'
let weixinModel = new WeixinModel()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    runData: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let self = this
    console.log("mysteps openId: " + app.getGlobalOpenId())
    wx.checkSession({
      success() {
        //session_key 未过期，并且在本生命周期一直有效
        console.log("mySteps checkSession success")
        self.wxLogin()
      },
      fail() {
        // session_key 已经失效，需要重新执行登录流程
        console.log("mySteps checkSession failed")
        self.wxLogin()
      }
    })
    this.getSteps()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  getSteps() {
    var self = this
    // 检车用户是否授权 scope.werun
    wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.werun']) {
          wx.authorize({
            scope: 'scope.werun',
            success() {
              self.getRunData()

            },
            fail: function (error) {
              console.error(error);
            },
            complete: function (res) {
              console.log(res);
            }
          })
        } else {
          self.getRunData()
        }
      }
    })
  },
  getRunData() {
    var self = this
    // 用户已经同意小程序使用该授权
    wx.getWeRunData({
      success(res) {
        // 拿 encryptedData 到开发者后台解密开放数据

        console.log(res)
        let data = {
          iv: res.iv,
          encryptedData: res.encryptedData,
          openId: app.getGlobalOpenId()
        }
        const weixin = weixinModel.decryptSteps(data)
        weixin.then(
          res => {
            console.log(res)
            if (res.code == 1) {
              self.setData({
                runData: res.data.stepInfoList
              })
              console.log(self.data.runData)
            }

          }
        )
      }
    })
  },

  // 微信登录
  wxLogin() {

    let self = this
    wx.login({
      success(res) {
        if (res.code) {
          console.log(res)
          // 发起网络请求
          const weixin = weixinModel.weixinLogin(res.code)
          weixin.then(
            res => {
              console.log(res)
              app.setGlobalOpenId(res.data)
              self.setData({
                openId: res.data
              })
            
            }
          )
        } else {
          wx.showToast({
            title: '登录失败！' + res.errMsg,
            icon: 'success',
            duration: 2000
          })
        }
      }
    })

  }
})